!% +language_name=3English Constant Story "Three Keys"; Constant Headline "^"; Include "3Parser"; Include "3Verblib"; Room shell "Generic Room" with description "Notable only for its sheer unremarkability.", has light ; Container -> chest "treasure chest" class Lockable, with name "chest", adjective 'treasure', with_key [ obj; switch (obj) { gold_key: if (self.gold_key_tried) return 6; else return 2; bronze_key: if (self.gold_key_tried || self.bronze_key_tried) rfalse; else return 1; silver_key: if (self.gold_key_tried || self.silver_key_tried) rfalse; else return 3; default: rfalse; } ], inside_capacity 5, behind_visible true, locked true, gold_key_tried 0, silver_key_tried 0, bronze_key_tried 0, description "The chest has a silver lock.", after [; Lock, Unlock: if (second == gold_key && ~~self.gold_key_tried) self.gold_key_tried = 1; if (second == silver_key && ~~self.silver_key_tried) self.silver_key_tried = 1; if (second == bronze_key && ~~self.bronze_key_tried) self.bronze_key_tried = 1; ], has openable; Thing ->-> pendants "sparkling pendants" with name "pendants", adjective 'sparkling', insideofparent true, has pluralname; Thing -> bronze_key "bronze key" with name "key", adjective 'bronze'; Thing -> gold_key "gold key" with name "key", adjective 'gold'; Thing -> silver_key "silver key" with name "key", adjective 'silver'; [ Initialise; player.location = shell; ]; Include "3Grammar"; end;